package cn.swing.ushare.comment.service;

import cn.swing.ushare.pojo.dto.CommentAddNewDTO;
import cn.swing.ushare.pojo.vo.ArticleCommentsVO;
import cn.swing.ushare.pojo.vo.CommentListVO;
import cn.swing.ushare.pojo.vo.CommentMessageVO;

import java.util.List;

public interface ICommentService {

    /**
     * 新增评论
     * @param comment
     * @return
     */
    Integer insertComment(CommentAddNewDTO comment);

    Integer updateByIds(Integer[] ids);
    /**
     * 根据传过来的id删除评论
     * @param ids 各评论的id
     * @return 受影响的行数
     */
    Integer deleteByIds(Integer[] ids);

    /**
     * 返回所有评论列表
     * @return 管理系统的评论
     */
    List<CommentListVO> list(String param);

    /**
     * 根据文章ID获取评论列表
     * @param id
     * @return
     */
    List<ArticleCommentsVO> getCommentListByArticleId(Integer id);

    /**
     * 根据文章ID获取评论的子评论
     * @param id
     * @return
     */
    List<ArticleCommentsVO> getChildCommentListByArticleId(Integer id);

    /**
     * 根据用户ID查询他人对自己的回复信息
     * @param id
     * @return
     */
    List<CommentMessageVO> listCommentMessages(Integer id);


    /**
     * 根据用户ID获取其未读取的信息数量
     * @param id
     * @return
     */
    Integer getUnreadMessagesCounts(Integer id);

    /**
     * 根据用户ID，将所有消息标记为已读
     * @param id
     * @return
     */
    Integer markIsRead(Integer id);

}
